#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>

//int main()
//{
//  pid_t id=fork();
//  if(id==0)
//  {
//    while(1)
//    {
//      printf("i am child pid is: %d\n",getpid());
//      sleep(1);
//    }
//  }
//  else 
//  {
//    while(1)
//    {
//      printf("i am father pid is: %d\n",getpid());
//      sleep(1);
//    }
//  }
//  return 0;
//}


int g_va=10;
//父进程更改数据会发生在写时拷贝之后
int main()
{
  int g_val=10;
  pid_t id=fork();
  if(id==0)
  {
    sleep(3);
    printf("子进程修改前：g_val:%d &g_val:%p\n",g_val,&g_val);
    g_val=100;

    printf("子进程修改后：g_val:%d &g_val:%p\n",g_val,&g_val);
  }
  else 
  {
    printf("父进程修改前：g_val:%d &g_val:%p\n",g_val,&g_val);
    g_val=99;
    printf("父进程修改后：g_val:%d &g_val:%p\n",g_val,&g_val);
    sleep(5);
  }
  return 0;
}





